package titiritero.vista;

import java.awt.image.BufferedImage;
import java.net.URL;
import javax.imageio.ImageIO;
import titiritero.Dibujable;
import titiritero.SuperficieDeDibujo;

/*
 * Esta clase representa una imagen JPG abstrayendo al usuario de los detalles de Java2D
 * Simplemente requiere de una referencia al nombre del archivo JPG
 */
public abstract class Imagen implements Dibujable {
	
	public Imagen(){
		
	}

	public abstract void dibujar(SuperficieDeDibujo superficeDeDibujo);
	    
	public String getNombreArchivoImagen() {
		return nombreArchivoImagen;
	}

	/**
	 * Establece la imagen con la que se dibujara el objeto.
	 * @param nombreArchivoImagen es el nombre del archivo que contiene la imagen. Se espera que dicho archivo sea .jpg y este ubicado en....
	 */
	public void setNombreArchivoImagen(String nombreArchivoImagen) {
		this.nombreArchivoImagen = nombreArchivoImagen;
		try{
			URL u = this.getClass().getResource(this.nombreArchivoImagen);
			this.setImagen(ImageIO.read(u));
		}catch(Exception ex){

		}			
	}
	
	public BufferedImage getImagen() {
		return imagen;
	}

	public void setImagen(BufferedImage imagen) {
		this.imagen = imagen;
	}

	private String nombreArchivoImagen;
        private BufferedImage imagen;

}
